1. Field of the Invention
The invention relates generally to storage systems and applications thereof and more specifically relates to use of hypervisor technology to integrate block level storage management and one or more higher layer data management applications in a storage system with a multi-core processor architecture.
2. Discussion of Related Art
Storage systems coupled to computing environments often utilize Redundant Array of Independent Disks (RAID) storage management to provide both high performance and high reliability in block level storage and retrieval of information. Often in large computing environments, other higher level data management functions are provided as network appliances positioned between the computing systems and the RAID storage systems. Though they may be physically housed within the storage system (i.e., same enclosure or rack), these network appliances are external device in logical term using separate processors and memory and coupled to the controller(s) of the storage system through interconnecting communication paths and protocols. Such higher level data management functions may include, for example, Network File System (NFS) protocol management. Other examples of higher level data management includes: other Network Attached Storage (NAS) data management functionality, storage virtualization, object oriented storage devices, content addressable storage devices, virtual tape storage management, Web browser interface services, diagnostic and performance tuning tools, etc.
These exemplary data management applications provide higher level data management functions useful in particular applications. As noted such higher level data management functions are typically provided as appliance devices external to the storage system and the computing system. The network appliance providing services and connectivity for computing systems to interact with the RAID storage subsystem.
Although some storage vendors may physically integrate such data management servers within the same enclosures as the RAID storage subsystem, such physical integration presents difficulties where the processing capabilities of a present-day multi-core processor is utilized. In such multi-core computing environments multiple CPUs are tightly coupled in a single integrated circuit and may share access to cache memory and main memory components. Although some higher level data management applications may be well adapted to optimal utilization of such multi-core processing environments (e.g., adapted for optimal parallel operation distributed on multiple core processors), most block oriented RAID storage management control functions are not presently architected for effective utilization of such parallel processing features in a multi-core processor environment. In particular, block oriented RAID storage management or other low level block oriented storage management features typically require real-time response and functionality to maintain desired performance and reliability in access to the mass storage devices within the storage subsystem (e.g., disk drives). Further, real-time operating systems often used as a platform to support block oriented RAID storage management typically operate in a single processor architecture. Cooperation in sharing access to memory and peripheral devices in a multi-core processor environment often makes it difficult to achieve the required real-time response required for low level management of storage devices in a storage subsystem (such as a RAID storage subsystem). Still further, data management layer applications are typically designed to operate in a second processor complex totally separate and independent of the clock oriented RAID storage management features of a storage system. Such data management applications, as presently practiced, operate on servers or other compute nodes and appliances external to the storage system.
Thus it is an ongoing challenge to effectively utilize multi-core processors in a single storage system controller to integrate higher level data management applications with lower level block oriented storage management features such as RAID storage management.